//package com.uphone.magicleaf.view.wheelview;
//
//import android.content.Context;
//import android.content.res.TypedArray;
//import android.graphics.Canvas;
//import android.graphics.Paint;
//import android.graphics.Rect;
//import android.text.Layout;
//import android.text.TextPaint;
//import android.util.AttributeSet;
//import android.view.View;
//
//
//import com.uphone.magicleaf.R;
//
//import java.util.ArrayList;
//import java.util.List;
//
//
//public class LineView extends View {
//
//    private boolean mCyclic;
//    private int mVisibleItems = 3;
//    private int mLineSpace = 50;
//    private int mTextSize = 20;
//    private int mSelectedColor;
//    private int mUnselectedColor;
////    private Drawable mDividerTop;
////    private Drawable mDividerBottom;
//
//    int centerX;
//    int centerY;
//    int upperLimit;
//    int lowerLimit;
//    int baseline;
//    int itemWidth;
//    int itemHeight;
//
//    Paint mPaint;
//
//
//    final List<CharSequence> mEntries = new ArrayList<>();
//
//
//    public LineView(Context context) {
//        super(context);
//    }
//
//    public LineView(Context context, AttributeSet attrs) {
//        super(context, attrs);
//        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.WheelView, 0, R.style.WheelView);
//        int lineSpace = a.getDimensionPixelOffset(R.styleable.WheelView_lineSpace, mLineSpace);
//        int textSize = a.getDimensionPixelSize(R.styleable.WheelView_textSize, mTextSize);
//        int visibleItems = a.getInt(R.styleable.WheelView_visibleItems, mVisibleItems);
////        mDividerTop = test.getDrawable(R.styleable.WheelView_divider);
////        mDividerBottom = test.getDrawable(R.styleable.WheelView_divider);
//        CharSequence[] entries = a.getTextArray(R.styleable.WheelView_entries);
//        a.recycle();
//
//
//
//        mPaint = new TextPaint();
//        mPaint.setAntiAlias(true);
//        mPaint.setTextAlign(Paint.Align.CENTER);
//
//
//
////        setCyclic(cyclic);
//        setVisibleItems(visibleItems);
//        setLineSpace(lineSpace);
//        setTextSize(textSize);
////        setSelectedColor(selectedColor);
////        setUnselectedColor(unselectedColor);
////        setEntries(entries);
//    }
//    @Override
//    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//        int widthSpecMode = MeasureSpec.getMode(widthMeasureSpec);
//        int widthSpecSize = MeasureSpec.getSize(widthMeasureSpec);
//        int heightSpecMode = MeasureSpec.getMode(heightMeasureSpec);
//        int heightSpecSize = MeasureSpec.getSize(heightMeasureSpec);
//        if (widthSpecMode == MeasureSpec.EXACTLY
//                && heightSpecMode == MeasureSpec.EXACTLY) {
//            setMeasuredDimension(widthSpecSize, heightSpecSize);
//            mVisibleItems = getPrefVisibleItems();
//        } else if (widthSpecMode == MeasureSpec.EXACTLY) {
//            setMeasuredDimension(widthSpecSize, getPrefHeight());
//        } else if (heightSpecMode == MeasureSpec.EXACTLY) {
//            setMeasuredDimension(getPrefWidth(), heightSpecSize);
//            mVisibleItems = getPrefVisibleItems();
//        } else {
//            setMeasuredDimension(getPrefWidth(), getPrefHeight());
//        }
//
//        centerX = (getMeasuredWidth() + getPaddingLeft() - getPaddingRight()) / 2;
//        centerY = (getMeasuredHeight() + getPaddingTop() - getPaddingBottom()) / 2;
//    }
//    public void setVisibleItems(int visibleItems) {
//        mVisibleItems = Math.abs(visibleItems / 2 * 2 + 1); // 当传入的值为偶数时,换算成奇数;
//    }
//
//    private Rect topR=new Rect();
//    private Rect bottomR=new Rect();
//    @Override
//    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
//        // 计算上方分割线的高度
//        upperLimit = centerY - itemHeight / 2;
//        // 计算下方分割线的高度
//        lowerLimit = centerY + itemHeight / 2;
//
//        topR.set(getPaddingLeft(), upperLimit, getWidth() - getPaddingRight(), upperLimit + 1);
//        bottomR.set(getPaddingLeft(), lowerLimit - 1,getWidth() - getPaddingRight(), lowerLimit);
////        if (mDividerTop != null) {
////            int h = mDividerTop.getIntrinsicHeight();
////            mDividerTop.setBounds(getPaddingLeft(), upperLimit,
////                    getWidth() - getPaddingRight(), upperLimit + h);
////
////        }
////        if (mDividerBottom != null) {
////            int h = mDividerBottom.getIntrinsicHeight();
////            mDividerBottom.setBounds(getPaddingLeft(), lowerLimit - h,
////                    getWidth() - getPaddingRight(), lowerLimit);
////        }
//    }
//
//    /**
//     * @return 控件的预算宽度
//     */
//    public int getPrefWidth() {
//        int padding = getPaddingLeft() + getPaddingRight();
//        int innerWidth = (int) (itemWidth + mTextSize * .5f);
//        return innerWidth + padding;
//    }
//
//    /**
//     * @return 控件的预算高度
//     */
//    public int getPrefHeight() {
//        int padding = getPaddingTop() + getPaddingBottom();
//        int innerHeight = itemHeight * mVisibleItems;
//        return innerHeight + padding;
//    }
//
//    /**
//     * @return 可见项的预算数量
//     */
//    public int getPrefVisibleItems() {
//        int innerHeight = getMeasuredHeight() - getPaddingTop() - getPaddingBottom();
//        return innerHeight / itemHeight;
//    }
//
//    void measureItemSize() {
//        int width = 0;
//
//            float w = Layout.getDesiredWidth("e", (TextPaint) mPaint);
//            width = Math.max(width, Math.round(w));
//
//        int height = Math.round(mPaint.getFontMetricsInt(null) + mLineSpace);
//        itemWidth = width;
//        if (itemHeight != height) {
//            // 每一项的高度改变时，需要重新计算滚动偏移量；
////            mScroller.setCurrentIndex(mScroller.getCurrentIndex(), false);
//            itemHeight = height;
//        }
//    }
//
//    @Override
//    protected void onDraw(Canvas canvas) {
////        final int index = mScroller.getItemIndex();
////        final int offset = mScroller.getItemOffset();
////        final int hf = (mVisibleItems + 1) / 2;
////        final int minIdx, maxIdx;
////        if (offset < 0) {
////            minIdx = index - hf - 1;
////            maxIdx = index + hf;
////        } else if (offset > 0) {
////            minIdx = index - hf;
////            maxIdx = index + hf + 1;
////        } else {
////            minIdx = index - hf;
////            maxIdx = index + hf;
////        }
//
////        if (mDividerTop != null) {
////            mDividerTop.draw(canvas);
////        }
////        if (mDividerBottom != null) {
////            mDividerBottom.draw(canvas);
////        }
//
//        canvas.drawLine(topR.left,topR.top,topR.right,topR.bottom,mPaint);
//        canvas.drawLine(bottomR.left,bottomR.top,bottomR.right,bottomR.bottom,mPaint);
//    }
//
//
//    public int getLineSpace() {
//        return mLineSpace;
//    }
//
//    public void setLineSpace(int lineSpace) {
//        measureItemSize();
//        requestLayout();
//        invalidate();
//    }
//
//    public int getTextSize() {
//        return mTextSize;
//    }
//
//    public void setTextSize(int textSize) {
//        mTextSize = textSize;
//        mPaint.setTextSize(textSize);
//        Paint.FontMetrics fontMetrics = mPaint.getFontMetrics();
//        baseline = (int) ((fontMetrics.top + fontMetrics.bottom) / 2);
//        measureItemSize();
//        requestLayout();
//        invalidate();
//    }
//
//
//
//
//
//
//
//
//
//}
